/** 内置多语言支持 */
import type { LangConfig } from './type'
import { createI18n } from 'vue-i18n'
import $config from '@/config'
import zhCN, { plugin_zhCN } from './zh-CN'
import zhHant, { plugin_zhHant } from './zh-Hant'
import enUS, { plugin_enUS } from './en-US'

/** 支持的语言类型 */
export type LangType = 'zh-CN' | 'zh-Hant' | 'en-US'

const i18n = createI18n({
  locale: $config.defaultLang(),
  fallbackLocale: 'en-US',
  legacy: false,
  messages: {
    'zh-CN': zhCN,
    'zh-Hant': zhHant,
    'en-US': enUS,
  },
})

export default i18n

/** 可选语言列表 */
export const config: LangConfig[] = [
  {
    key: 'zh-CN',
    name: '简体中文',
    plugin: plugin_zhCN,
  },
  {
    key: 'zh-Hant',
    name: '繁體中文',
    plugin: plugin_zhHant,
  },
  {
    key: 'en-US',
    name: 'English',
    plugin: plugin_enUS,
  },
]

/** 当前语言 */
export const locale = i18n.global.locale

/** 全局语言对象 */
export const t = i18n.global.t
